www.gusucode.com > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM源码程序 > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM\LS_SVMlab\leaveoneout.m

    function [cost,costs,output] = leaveoneout(model, X,Y, estfct,combinefct, corrected,trainfct,simfct)
% Estimate the performance of a trained model with leave-one-out crossvalidation
% 
% >> leaveoneout({X,Y,type,gam,sig2}, Xval, Yval)
% >> leaveoneout(model, Xval, Yval)
% 
% In each iteration, one leaves one point, and fits a model on the
% other data points. The performance of the model is estimated
% based on the point left out. This procedure is repeated for each
% data point. Finally, all the different estimates of the
% performance are combined (default by computing the mean). The
% assumption is made that the input data is distributed independent
% and identically over the input space. A statistical bias
% reduction technique can be applied.
% 
% By default, this function will call the training (trainlssvm) and
% simulation (simlssvm) algorithms for LS-SVMs. However, one can
% use the validation function more generically by specifying the
% appropriate training and simulation function.
% 
%
% Full syntax
% 
%     1. Using the functional interface for the LS-SVMs:
% 
% >> [cost, costs, el] = leaveoneout({X,Y,type,gam,sig2,kernel,preprocess}, Xval, Yval)
% >> [cost, costs, el] = leaveoneout({X,Y,type,gam,sig2,kernel,preprocess}, Xval, Yval, estfct)
% >> [cost, costs, el] = leaveoneout({X,Y,type,gam,sig2,kernel,preprocess}, Xval, Yval, estfct, combinefct)
% >> [cost, costs, el] = leaveoneout({X,Y,type,gam,sig2,kernel,preprocess}, Xval, Yval, estfct, combinefct, correction)
% 
%       Outputs    
%         cost          : Cost estimated by leave-one-out crossvalidation
%         costs(*)      : N x 1 vector with the costs of the N folds
%         el(*)         : N x 1 vector with the leave-one-out residuals
%       Inputs    
%         X             : Training input data used for defining the LS-SVM and the preprocessing
%         Y             : Training output data used for defining the LS-SVM and the preprocessing
%         type          : 'function estimation' ('f') or 'classifier' ('c')
%         gam           : Regularization parameter
%         sig2          : Kernel parameter (bandwidth in the case of the 'RBF_kernel')
%         kernel(*)     : Kernel type (by default 'RBF_kernel')
%         preprocess(*) : 'preprocess'(*) or 'original'
%         Xval          : N x d matrix with the inputs of the data used for leave-one-out cross-validation
%         Yval          : N x m matrix with the outputs of the data used for leave-one-out cross-validation
%         estfct(*)     : Function estimating the cost based on the residuals (by default mse)
%         combinefct(*) : Function combining the estimated costs on the different folds (by default mean)
%         correction(*) : 'original'(*) or 'corrected'
% 
%
%     2. Using the object oriented interface for the LS-SVMs:
% 
% >> [cost, costs, el] = leaveoneout(model, Xval, Yval)
% >> [cost, costs, el] = leaveoneout(model, Xval, Yval, estfct)
% >> [cost, costs, el] = leaveoneout(model, Xval, Yval, estfct, combinefct)
% >> [cost, costs, el] = leaveoneout(model, Xval, Yval, estfct, combinefct, correction)
% 
%       Outputs    
%         cost          : Cost estimated by leave-one-out crossvalidation
%         costs(*)      : N x 1 vector with costs estimated on the N different folds
%         el(*)         : N x 1 vector with residuals of all data
%       Inputs    
%         model         : Object oriented representation of the model
%         Xval          : Nt x d matrix with the inputs of the validation points used
%         Yval          : Nt x m matrix with the outputs of the validation points used in the procedure
%         estfct(*)     : Function estimating the cost based on the residuals (by default mse)
%         combinefct(*) : Function combining the estimated costs on the different folds (by default mean)
%         correction(*) : 'original'(*) or 'corrected'
% 
%
%     3. Using other modeling techniques:
% 
% >> [cost, costs, el] = leaveoneout(model, Xval, Yval, estfct, combinefct, correction, trainfct, simfct)
% 
%       Outputs    
%         cost          : Cost estimated by leave-one-out crossvalidation
%         costs(*)      : N x 1 vector with costs estimated on the N different folds
%         el(*)         : N x 1 vector with residuals of all data
%       Inputs    
%         model         : Object oriented representation of the model
%         Xval          : Nt x d matrix with the inputs of the validation points used
%         Yval          : Nt x m matrix with the outputs of the validation points used in the procedure
%         estfct(*)     : Function estimating the cost based on the residuals (by default mse)
%         combinefct(*) : Function combining the estimated costs on the different folds (by default mean)
%         correction(*) : 'original'(*) or 'corrected'
%         trainfct      : Function used to train the model
%         simfct        : Function used to simulate test data with the model
% 
% See also:
%   leaveoneout_lssvm, validate, crossvalidate, trainlssvm, simlssvm

% Copyright (c) 2002,  KULeuven-ESAT-SCD, License & help @ http://www.esat.kuleuven.ac.be/sista/lssvmlab


%
% initialisation and defaults
%
eval('estfct;','estfct=''mse'';');
eval('combinefct;','combinefct=''mean'';');
eval('trainfct;','trainfct=''trainlssvm'';');
eval('simfct;','simfct=''simlssvm'';');
eval('corrected;','corrected=''original'';');

[cost,costs,output] = crossvalidate(model,X,Y,size(X,1),estfct,combinefct,corrected,trainfct,simfct);